package com.op.service;

import com.github.yulichang.base.MPJBaseService;
import com.op.entity.UserQuestionData;
import com.op.model.vo.AllCountByUserVo;
import com.op.model.vo.BankCorrectVo;
import com.op.model.vo.DifficultyDataVo;
import com.op.model.vo.XQuestionDataVo;

import java.util.List;

/**
 * (UserQuestionData)表服务接口
 *
 * @author 孤焰
 * @since 2021-10-25 17:01:00
 */
public interface UserQuestionDataService extends MPJBaseService<UserQuestionData> {
    /**
     * 查询userId下的所有题目总答题数据
     * @param userId 用户Id
     * @return 题目总答题数据
     */
    AllCountByUserVo allCount(Long userId);

    /**
     * 查询userId下各个题库的正确率
     * @param userId 用户Id
     * @return 题库列表和正确率列表
     */
    BankCorrectVo bankCorrect(Long userId);

    /**
     * 查询最近count条题目问答数据（正确率、不确定率、错误率）
     * @param userId 用户Id
     * @param count 回显条数
     * @return 最近修改列表、正确率列表、不确定率列表、错误率列表
     */
    XQuestionDataVo xQuestionData(Long userId, Integer count);

    /**
     * 查询难易度相关的题目数据
     * @param userId 用户Id
     * @return 难易度列表、正确率列表、不确定率列表、错误率列表
     */
    DifficultyDataVo difficultyData(Long userId);

    /**
     * 根据userId和QuestionId查找唯一的用户题目数据
     * @param userId 用户Id
     * @param questionId 题目Id
     * @return 用户题目数据
     */
    UserQuestionData getOneByUserIdAndQuestionId(Long userId, Long questionId);

    /**
     * 批量逻辑删除
     * @param idList id列表
     * @return 删除结果
     */
    boolean logicDelBatchById(List<Long> idList);
}

